module.exports = (options = { required: true }) => {
    return async (ctx, next) => {
        // 1. 获取请求头中的 token 数据
        const token = ctx.headers.token
        if (token) {
            try {
                const { id } = ctx.service.user.verifyToken(token);
                const user = await ctx.service.user.getUser(id);
                if (user) {
                    ctx.userId = user["_id"]
                } else {
                    ctx.throw(404)
                }

            } catch (error) {
                ctx.throw(401)
            }
        }
        //  else{
        //     ctx.throw(401)
        // }
        await next()
    }
}
